package com.cntcdt.api.db.model.base;

import java.io.Serializable;
import java.sql.ResultSet;
import java.util.Date;

/**
 * 这是cdt_device_charge的数据传输对象基类,直接与表对应<br>
 */
public abstract class DeviceChargeModelBase  implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 属性:id<br>
     */
    private Integer id = 0;
    /**
     * 属性:设备表Id<br>
     * 含义:设备表Id<br>
     */
    private Double hourPay = 0.0;
    /**
     * 属性:免费时长long型<br>
     * 含义:免费时长long型<br>
     */
    private Long gratisTime = null;
    /**
     * 属性:vip免费时长long型<br>
     * 含义:vip免费时长long型<br>
     */
    private Long vipGratisTime = null;
    /**
     * 属性:日最高消费<br>
     * 含义:日最高消费<br>
     */
    private Double dayMaxPay = 0.0;
    /**
     * 属性:vip每小时消费<br>
     * 含义:vip每小时消费<br>
     */
    private Double vipHourPay = 0.0;
    /**
     * 属性:vip日最高消费<br>
     * 含义:vip日最高消费<br>
     */
    private Double vipDayMaxPay = 0.0;
    /**
     * 属性:收费模式 1、普通模式  2、高收费模式<br>
     * 含义:收费模式 1、普通模式  2、高收费模式<br>
     */
    private Integer chargeType = 0;
    /**
     * 属性:购买数据线收费<br>
     * 含义:购买数据线收费<br>
     */
    private Double buyLinePay = 0.0;
    /**
     * 属性:是否赠送数据线<br>
     * 含义:是否赠送数据线<br>
     */
    private Integer isPresentLine = 0;
    /**
     * 属性:租借充电宝押金<br>
     * 含义:租借充电宝押金<br>
     */
    private Double borrowCDBMoney = 0.0;
    /**
     * 属性:addTime<br>
     */
    private Date addTime = new Date();
    /**
     * 属性:updateTime<br>
     */
    private Date updateTime = new Date();
    
    private String gratisTimeStr;
    
    private String vipGratisTimeStr;
    
    private String hourPayStr;
    
    private String vipHourPayStr;
    
    private String dayMaxPayStr;
    
    private String vipDayMaxPayStr;
    
    private Long payTime = null;
    
    private Double borrowPay = 0.0;
    
    private Long borrowPayTime = null;
    
    private Long vipBorrowPayTime = null;
    
    private Integer presentLineType;
    
    private String describe;

    /**
     *  默认构造方法,构造一个默认的DeviceChargeModelBase对象
     */
    public DeviceChargeModelBase(){
    }

    /**
     *  构造函数
     *  @param rs 数据库查询结果集
     */
    public DeviceChargeModelBase(ResultSet rs){
           try{
               this.id = rs.getInt("id");
               this.hourPay = rs.getDouble("hourPay");
               this.gratisTime = rs.getLong("gratisTime");
               this.vipGratisTime = rs.getLong("vipGratisTime");
               this.dayMaxPay = rs.getDouble("dayMaxPay");
               this.vipHourPay = rs.getDouble("vipHourPay");
               this.vipDayMaxPay = rs.getDouble("vipDayMaxPay");
               this.chargeType = rs.getInt("chargeType");
               this.buyLinePay = rs.getDouble("buyLinePay");
               this.isPresentLine = rs.getInt("isPresentLine");
               this.borrowCDBMoney = rs.getDouble("borrowCDBMoney");
               this.addTime = rs.getDate("addTime");
               this.updateTime = rs.getDate("updateTime");
               this.payTime = rs.getLong("payTime");
               this.borrowPay = rs.getDouble("borrowPay");
               this.borrowPayTime = rs.getLong("borrowPayTime");
               this.vipBorrowPayTime = rs.getLong("vipBorrowPayTime");
               this.presentLineType = rs.getInt("presentLineType");
           }catch(Exception e) {
              e.printStackTrace(); 
           }
    }

    public String getDescribe() {
		return describe;
	}

	public void setDescribe(String describe) {
		this.describe = describe;
	}

	public Integer getPresentLineType() {
		return presentLineType;
	}

	public void setPresentLineType(Integer presentLineType) {
		this.presentLineType = presentLineType;
	}

	public Long getBorrowPayTime() {
		return borrowPayTime;
	}

	public void setBorrowPayTime(Long borrowPayTime) {
		this.borrowPayTime = borrowPayTime;
	}

	public Long getVipBorrowPayTime() {
		return vipBorrowPayTime;
	}

	public void setVipBorrowPayTime(Long vipBorrowPayTime) {
		this.vipBorrowPayTime = vipBorrowPayTime;
	}

	public Long getPayTime() {
		return payTime;
	}

	public void setPayTime(Long payTime) {
		this.payTime = payTime;
	}

	public Double getBorrowPay() {
		return borrowPay;
	}

	public void setBorrowPay(Double borrowPay) {
		this.borrowPay = borrowPay;
	}

	public String getGratisTimeStr() {
		return gratisTimeStr;
	}

	public void setGratisTimeStr(String gratisTimeStr) {
		this.gratisTimeStr = gratisTimeStr;
	}

	public String getVipGratisTimeStr() {
		return vipGratisTimeStr;
	}

	public void setVipGratisTimeStr(String vipGratisTimeStr) {
		this.vipGratisTimeStr = vipGratisTimeStr;
	}

	public String getHourPayStr() {
		return hourPayStr;
	}

	public void setHourPayStr(String hourPayStr) {
		this.hourPayStr = hourPayStr;
	}

	public String getVipHourPayStr() {
		return vipHourPayStr;
	}

	public void setVipHourPayStr(String vipHourPayStr) {
		this.vipHourPayStr = vipHourPayStr;
	}

	public String getDayMaxPayStr() {
		return dayMaxPayStr;
	}

	public void setDayMaxPayStr(String dayMaxPayStr) {
		this.dayMaxPayStr = dayMaxPayStr;
	}

	public String getVipDayMaxPayStr() {
		return vipDayMaxPayStr;
	}

	public void setVipDayMaxPayStr(String vipDayMaxPayStr) {
		this.vipDayMaxPayStr = vipDayMaxPayStr;
	}

	/**
     * 设置属性id<br>
     * @param id 待设置的属性id的值
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取属性id<br>
     * @return 属性id的值
     */
    public Integer getId() {
        return id;
    }


    /**
     * 设置属性每小时支付金额<br>
     * 含义:每小时支付金额<br>
     * @param hourPay 待设置的属性每小时支付金额的值
     */
    public void setHourPay(Double hourPay) {
        this.hourPay = hourPay;
    }

    /**
     * 获取属性每小时支付金额<br>
     * 含义:每小时支付金额<br>
     * @return 属性每小时支付金额的值
     */
    public Double getHourPay() {
        return hourPay;
    }

    /**
     * 设置属性免费时长long型<br>
     * 含义:免费时长long型<br>
     * @param gratisTime 待设置的属性免费时长long型的值
     */
    public void setGratisTime(Long gratisTime) {
        this.gratisTime = gratisTime;
    }

    /**
     * 获取属性免费时长long型<br>
     * 含义:免费时长long型<br>
     * @return 属性免费时长long型的值
     */
    public Long getGratisTime() {
        return gratisTime;
    }

    /**
     * 设置属性vip免费时长long型<br>
     * 含义:vip免费时长long型<br>
     * @param vipGratisTime 待设置的属性vip免费时长long型的值
     */
    public void setVipGratisTime(Long vipGratisTime) {
        this.vipGratisTime = vipGratisTime;
    }

    /**
     * 获取属性vip免费时长long型<br>
     * 含义:vip免费时长long型<br>
     * @return 属性vip免费时长long型的值
     */
    public Long getVipGratisTime() {
        return vipGratisTime;
    }

    /**
     * 设置属性日最高消费<br>
     * 含义:日最高消费<br>
     * @param dayMaxPay 待设置的属性日最高消费的值
     */
    public void setDayMaxPay(Double dayMaxPay) {
        this.dayMaxPay = dayMaxPay;
    }

    /**
     * 获取属性日最高消费<br>
     * 含义:日最高消费<br>
     * @return 属性日最高消费的值
     */
    public Double getDayMaxPay() {
        return dayMaxPay;
    }

    /**
     * 设置属性vip每小时消费<br>
     * 含义:vip每小时消费<br>
     * @param vipHourPay 待设置的属性vip每小时消费的值
     */
    public void setVipHourPay(Double vipHourPay) {
        this.vipHourPay = vipHourPay;
    }

    /**
     * 获取属性vip每小时消费<br>
     * 含义:vip每小时消费<br>
     * @return 属性vip每小时消费的值
     */
    public Double getVipHourPay() {
        return vipHourPay;
    }

    /**
     * 设置属性vip日最高消费<br>
     * 含义:vip日最高消费<br>
     * @param vipDayMaxPay 待设置的属性vip日最高消费的值
     */
    public void setVipDayMaxPay(Double vipDayMaxPay) {
        this.vipDayMaxPay = vipDayMaxPay;
    }

    /**
     * 获取属性vip日最高消费<br>
     * 含义:vip日最高消费<br>
     * @return 属性vip日最高消费的值
     */
    public Double getVipDayMaxPay() {
        return vipDayMaxPay;
    }

    /**
     * 设置属性收费模式 1、普通模式  2、高收费模式<br>
     * 含义:收费模式 1、普通模式  2、高收费模式<br>
     * @param chargeType 待设置的属性收费模式 1、普通模式  2、高收费模式的值
     */
    public void setChargeType(Integer chargeType) {
        this.chargeType = chargeType;
    }

    /**
     * 获取属性收费模式 1、普通模式  2、高收费模式<br>
     * 含义:收费模式 1、普通模式  2、高收费模式<br>
     * @return 属性收费模式 1、普通模式  2、高收费模式的值
     */
    public Integer getChargeType() {
        return chargeType;
    }

    /**
     * 设置属性购买数据线收费<br>
     * 含义:购买数据线收费<br>
     * @param buyLinePay 待设置的属性购买数据线收费的值
     */
    public void setBuyLinePay(Double buyLinePay) {
        this.buyLinePay = buyLinePay;
    }

    /**
     * 获取属性购买数据线收费<br>
     * 含义:购买数据线收费<br>
     * @return 属性购买数据线收费的值
     */
    public Double getBuyLinePay() {
        return buyLinePay;
    }

    /**
     * 设置属性是否赠送数据线<br>
     * 含义:是否赠送数据线<br>
     * @param isPresentLine 待设置的属性是否赠送数据线的值
     */
    public void setIsPresentLine(Integer isPresentLine) {
        this.isPresentLine = isPresentLine;
    }

    /**
     * 获取属性是否赠送数据线<br>
     * 含义:是否赠送数据线<br>
     * @return 属性是否赠送数据线的值
     */
    public Integer getIsPresentLine() {
        return isPresentLine;
    }

    /**
     * 设置属性租借充电宝押金<br>
     * 含义:租借充电宝押金<br>
     * @param borrowCDBMoney 待设置的属性租借充电宝押金的值
     */
    public void setBorrowCDBMoney(Double borrowCDBMoney) {
        this.borrowCDBMoney = borrowCDBMoney;
    }

    /**
     * 获取属性租借充电宝押金<br>
     * 含义:租借充电宝押金<br>
     * @return 属性租借充电宝押金的值
     */
    public Double getBorrowCDBMoney() {
        return borrowCDBMoney;
    }

    /**
     * 设置属性addTime<br>
     * @param addTime 待设置的属性addTime的值
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取属性addTime<br>
     * @return 属性addTime的值
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置属性updateTime<br>
     * @param updateTime 待设置的属性updateTime的值
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取属性updateTime<br>
     * @return 属性updateTime的值
     */
    public Date getUpdateTime() {
        return updateTime;
    }


    /**
     * 比较两个对象在逻辑上是否相等
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof DeviceChargeModelBase)) {
            return false;
        }

        final DeviceChargeModelBase otherModel = (DeviceChargeModelBase) other;
        if (getId()!=null && !getId().equals(otherModel.getId())) {
            return false;
        }
        return true;
    }

    /**
     * 根据主键生成HashCode
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        StringBuffer buffer = new StringBuffer();
        buffer.append('|').append(id);
        return buffer.toString().hashCode();
    }
}
